// packageA/pages/setBatteryList/setBatteryList.js
import CommonService from '../../../utils/service/commonService.js';
import Toast from '../../../miniprogram_npm/@vant/weapp/toast/toast';
const util = require('../../../utils/util');
import Base64 from '../../../utils/Base64.js';

Page({

  /**
   * 页面的初始数据
   */
  data: {    
    //列表
    list:[],
    //初始化列表
    listMap: [],
    //电池类型
    batteryTypeList: [],
    batteryTypeMap: null,
    //电压值选项
    voltageList: [12,24,36,48,60,72]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取电池类型
    this.getType(); 
  },

  //获取电池类型
  getType(){
    Toast.loading({
      duration: 0,
      forbidClick: true,
      message: '加载中...'
    });

    let param = {
      isAuth: true,
      className: 'batteryType',
      data: {
        searchAll: true,
        nbl: Base64.encode(util.timeFormatDay(new Date())),
        selectFields: ['id','name'],
        sort: {
          id: 1
        }
      }
    }  

    CommonService.goFindList(param).then(res => {
      if(res.data.data && res.data.data.result && res.data.data.result.length) {
        let result=res.data.data.result;
        console.log('电池类型');
        console.log(result);

        let map=new Map();
        result.forEach(item => {
          map.set(item.id,item);
        });

        this.setData({
          batteryTypeList: result,
          batteryTypeMap: map
        })

        //初始化电池列表
        this.initList();

      }else{
        this.setData({
          showNothing: true
        })
      }
      Toast.clear();
    }).catch((error) => {
      this.setData({
        showNothing: true
      })
      Toast.clear();
    })
  },

  //初始化电池列表
  initList(){
    let map = new Map();
    let tList = this.data.batteryTypeList;
    let vList = this.data.voltageList;  

    //按电池类型和电压值初始化列表
    tList.forEach(item => {
      for(let i=0;i<vList.length;i++){
        map.set(
          item.id +'-'+ vList[i],
          {
            batteryTypeId: item.id,
            self_batteryTypeName: item.name,
            volts: vList[i]
          }
        ); 
      }
    });
    
    this.setData({
      listMap: map
    })

    //获取列表数据
    this.getList();
  },

  //获取列表数据
  getList(){
    let param = {
      isAuth: true,
      className: 'batteryMinVolSet',
      data: {
        searchAll: true,
        selectFields: ['id','batteryTypeId','minVol','floats','volts']
      }
    }  

    CommonService.goFindList(param).then(res => { 
      let listMap=this.data.listMap;

      if(res.data.data && res.data.data.result && res.data.data.result.length) {
        let result=res.data.data.result;
        let tMap=this.data.batteryTypeMap;

        //电池类型名称
        result.forEach(item => {
          item.self_batteryTypeName=tMap.get(item.batteryTypeId).name;
        });

        //和初始列表比对
        result.forEach(item => {
          if(listMap.get(item.batteryTypeId +'-'+ item.volts)){
            listMap.set(
              item.batteryTypeId +'-'+ item.volts,
              item
            );
          }
        });
      }
      
      let list = [...listMap.values()];
      console.log('电池设置列表');
      console.log(list);

      this.setData({
        list: list
      })

      Toast.clear();
    }).catch((error) => {
    })
  }, 

  //跳转编辑
  goToEdit({currentTarget}){
    let detail = currentTarget.dataset.detail;
    let obj = {};

    if(detail.id){
      obj.id = detail.id;
    }else{
      obj.notSetInfo = detail;
    }

    wx.navigateTo({
      url: "/packageA/pages/setBatteryAdd/setBatteryAdd?paramObj="+JSON.stringify(obj)
    })
  },  

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  }
})